// 导入数据库模块
// const db = require('../db/mysql')

// 导入cb模块替代db模块
const cb = require('../promise/cb')

// 导入密码加密模块
const bcrypt = require('bcryptjs')

// 导入token模块和密钥
const jwt = require('jsonwebtoken')
const config = require('../token/config')

exports.login = async(req, res) => {
    const sql = 'select * from sp_manager where mg_name=?'
    const userinfo = req.body

    // db.query(sql, userinfo.username, (err, results) => {
    //     if (err) return res.ResInfo(err)
    //     if (results.length < 1) return res.ResInfo('用户名不存在')
    //     const compareResulst = bcrypt.compareSync(userinfo.password, results[0].mg_pwd)
    //     if (!compareResulst) return res.ResInfo('用户名或密码错误')
    //     const user = {...results[0], mg_pwd: "" }
    //     const token = jwt.sign(user, config.secretKey, { expiresIn: config.expiresIn })
    //     res.ResInfo('登录成功', 200, {
    //         token: 'Bearer ' + token,
    //     })
    // })

    const results = await cb(sql, userinfo.username).catch(function(err) {
        res.ResInfo(err)
    })

    if (results.length < 1) return res.ResInfo('用户名不存在')

    // 判断密码
    const compareResulst = bcrypt.compareSync(userinfo.password, results[0].mg_pwd)
    if (!compareResulst) return res.ResInfo('用户名或密码错误')

    // 用户数据通过解构赋值 将mg_pwd变为空
    const user = {...results[0], mg_pwd: "" }

    // 生成token密钥
    const token = jwt.sign(user, config.secretKey, { expiresIn: config.expiresIn })


    res.ResInfo('登录成功', 200, {
        token: 'Bearer ' + token,
    })
}